#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>

#define bufferSize 100

int main() {
    int fd;
    char buffer[bufferSize];
    // 使用O_RDWR | O_CREAT模式，文件不存在时创建并可读写
    fd = open("test.txt", O_RDWR | O_CREAT, 0666); 
    if (fd == -1) {
        perror("open");
        return 1;
    }

    const char* msg = "i like linux";
    // 写入内容
    if (write(fd, msg, strlen(msg)) == -1) { 
        perror("write");
        close(fd);
        return 1;
    }

    // 将文件指针移动到文件开头
    if (lseek(fd, 0, SEEK_SET) == -1) { 
        perror("lseek");
        close(fd);
        return 1;
    }

    // 读取内容
    ssize_t bytes_read = read(fd, buffer, bufferSize); 
    if (bytes_read > 0) {
        buffer[bytes_read] = '\0';  // 添加字符串结束符
        printf("%s\n", buffer);
    } else if (bytes_read == -1) {
        perror("read");
    }

    // 关闭文件描述符
    if (close(fd) == -1) {
        perror("close");
        return 1;
    }

    return 0;
}
